
package com.nuedu.corejava.ch12;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;

public class MyFileWriter {

	public static void main(String[] args) {
		charWrit();
	}

	private static void charWrit() {
		// 编写一个程序，向C:/temp/abc.txt 写入100行 “Hello file”
		File file = new File("C:/temp/abc.txt");
		file.getParentFile().mkdirs();
		
		FileWriter writer = null;

		try {
			if (file.exists()) {
				//file.delete();
				//System.out.println("删除文件");
				//file.createNewFile();
				//System.out.println("新增文件成功");
			}else {
				file.createNewFile();
				System.out.println("新增文件成功");
			}
			writer = new FileWriter(file, true);// 以追加的方式打开流,默认参数为false，会清空原有内容并重写
			for (int i = 0; i < 100; i++) {
				String str = "你好，Java文件读写！\r\n";
				writer.write(str);// 字符流可以使用char数组或字符串进行输出
				writer.flush();
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (writer != null) {
				try {
					writer.close();// 抵用close方法前，会默认调用flush 刷新缓存
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

	}

	private static void byteWrit() {
		// 编写一个程序，向C:/temp/abc.txt 写入100行 “Hello file”

		File file = new File("C:/temp/abc.txt");
		file.getParentFile().mkdirs();// 创建文件目录
		FileOutputStream outputStream = null;
		try {
			// 以字节流形式写文件
			if (file.exists()) {
				file.delete();
			} else {

				file.createNewFile();// 创建新文件
				outputStream = new FileOutputStream(file);

				for (int i = 0; i < 100; i++) {
					String str = "Hello file" + i + "\r\n";// \r\n换行符
					byte[] b = str.getBytes();// 字节流写数据时，需要把数据转换成字节数组
					outputStream.write(b);
					outputStream.flush();
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (outputStream != null) {
				try {
					outputStream.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

	}

}
